package com.cy.java.basic;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

/**
 * 类在运行时会读到的内容，
 * 除了此类还有哪些类会读到内存，
 * 第一次读到内存的类是哪个？
 * 通过Jvm参数实现：-XX:+TraceClassLoading
 */
public class HelloWorld {
    public static void main(String[] args) {

        /**
         * main方法中参数的用途？可以传值吗？
         * 假如是IDEA在哪里传值？
         * 运行时GC情况有没有触发？
         * 如触发则对哪些内存区域进行回收？
         * Jvm参数：
         * 打印CG详细情况：-XX:+PrintGCDetails
         * 可以强行触发GC操作：1.手动System.gc()
         * @param args
         */
        System.out.println(Arrays.toString(args));
        System.out.println("helloword!");
        //触发GC的手段
        //1.手动GC
        //System.gc()
        //2.自动GC
        //List<byte[]> list=new ArrayList<>();
        for (int i = 0; i <10000 ; i++) {
            //list.add(new byte[1024*1024]);
            byte[] array=new byte[1024*1024];//对象创建越来越多的时候底层会启动GC
            //内存中的对象何时会被认为是垃圾对象？对象不可达是（jvm访问不到了）

        }
        //思考：系统在启动GC时回收内容中的垃圾对象
        //此时还可能会导致短时间的程序暂停，

    }


}
